package com.hqd.ch03.v27.spel;

/**
 * 表达式获取值接口
 */
public interface Expression {
    /**
     * 获取Spel表达式
     *
     * @return
     */
    String getExpressionString();

    /**
     * 获取Spel表达式结果
     *
     * @return
     */
    Object getValue();

    /**
     * 根据传入的上下文，获取spel表达式的值
     *
     * @param context 上下文
     * @return
     */
    Object getValue(EvaluationContext context);

    /**
     * 设置上下文的值
     *
     * @param context
     * @param value
     */
    void setValue(EvaluationContext context, Object value);
}
